前面說明了 Docker 服務是什麼以及基本常用的操作指令之後
今天想要來談談實際操作的過程啦
首先第一步: 先去安裝 Docker Desktop
第二步: 再替專案準備 Dockerfile 和 docker-compose.yml
補充說明:
我有特別問 AI 說使用 Docker 一定要用 Dockerfile 和 docker-compose.yml 嗎?
答案是: 不用,沒有 Dockerfile 和 docker-compose.yml 也可以跑 Docker。
Docker 執行的是 image,不是一定要執行 Dockerfile 或 docker-compose.yml
1.Dockerfile
例如:我們也可以直接跑一個官方 Nginxdocker run -d -p 8080:80 nginx
這裡完全沒有
Dockerfile
docker-compose.yml
但 Docker 一樣可以正常跑,因為它直接使用 Docker Hub 上已經做好的 nginx image。
可以這樣理解:
情況 1:直接使用現成 image
docker run nginx
↓
直接啟動 nginx container
這時不需要 Dockerfile。
而 Dockerfile 是你想要「自己做一個 image」時才需要。
例如:一個 React 專案:
React 原始碼
↓
Dockerfile
↓
docker build
↓
產生自己的 image
↓
container
2.docker-compose.yml
docker-compose.yml 也不是 Docker 必備。
假設有
frontend
backend
mysql
其實可以完全手動,只是會很麻煩,
docker run frontend-image
docker run backend-image
docker run mysq
才會讓 docker-compose.yml 幫你一次管理docker compose up
3.結論
所以 Docker 最基本的流程其實是:
Image
↓
Container
而 Dockerfile 只是其中一種「產生 Image 的方法」。docker-compose.yml 只是「方便管理 Container 的工具」。
可以想像成:
Dockerfile
= 怎麼做便當
Image
= 做好的便當
Container
= 把便當打開開始吃
docker-compose.yml
= 一次管理很多份便當
所以如果在公司專案裡看到「沒有 Dockerfile,但 Docker 還是跑得起來」,通常代表它可能直接使用了已經存在的 image。
阿~講太多了今天就先到這邊XD
明天繼續談談設定 Docker 的部分!